import os

from selenium import webdriver
from fake_useragent import UserAgent


class Browser:
    """ Класс представляющий браузер """

    def get_path_to_chromedriver(self) -> str:
        """ Получаем путь к chromedriver """
        return os.path.abspath('chromedriver')


    def get_browser_options(
        self,
        display_browser: bool
    ) -> webdriver.ChromeOptions:
        """ Получаем настройки браузера """

        user_agent = UserAgent()
        user_agent = user_agent.chrome

        options = webdriver.ChromeOptions()
        options.add_argument(f'--user-agent={user_agent}')
        options.add_argument(f'--disable-blink-features=AutomationControlled')

        if not display_browser:  # Если браузер не нужно отображать
            options.add_argument('--headless')

        return options


    def get_browser(
        self,
        display_browser: bool = False
    ) -> webdriver.Chrome:
        """ Получаем браузер """

        browser_options = self.get_browser_options(display_browser)
        browser = webdriver.Chrome(
            executable_path=self.get_path_to_chromedriver(),
            options=browser_options
        )
        return browser
